Codec sequence detection

ABSTRACT

In order to detect a specific codec sequence being used, a signal that is based on a codec sequence is analyzed. The signal is analyzed to determine if there is a pattern in the signal. A pattern of a codec sequence can be a unique pattern of frames, frequencies and/or frequency ranges that are generated based on a specific codec sequence. The pattern is compared to one or more previously stored patterns of codec sequences to see if there is a match. If there is a match, an event is generated. For example, if a known codec sequence that has a poor signal quality is determined to be in use for a voice call, the parties may be notified that the call is likely to be a low quality voice call.

TECHNICAL FIELD

The systems and methods disclosed herein relate to codecs and inparticular to detection of the use of codecs.

BACKGROUND

As callers make voice and video calls, the number of networks that thevoice and video calls traverse may span multiple networks or devicesthat use different codecs. The spanning of multiple networks utilizingdifferent codecs may be due to different networks using differentprotocols and/or the different networks being managed by differententerprises. For example, a voice call may originate in an enterpriseusing a first codec and then be sent to the Public Switched TelephoneNetwork (PSTN) where the voice call re-encoded using a different codecbefore the call is completed. In addition, when a user make a voice orvideo call to another user, the route that voice or video call makes mayvary based on various factors, such as congestion, hardware failures,Quality of Service (QoS) parameters, service level agreements, and/orthe like.

Sometimes when a voice or video call takes a different route, adifferent set of codecs are used. Each time a different codec is usedfor the voice or video call, distortion is inherently introduced intothe audio and/or video signal. Depending upon the sequence of codecsthat are used for a voice or video call, the quality of the voice orvideo call may be degraded to a point of where the quality of the voiceor video call is unacceptable.

For conference calls with users at various remote locations, the numberof different codecs used in the communication path is higher due to thefact that there are a variety of different callers from differentlocations. Each person on the call may be using different codecs ondifferent networks and devices. When some callers call into theconference call, the codec sequence for the caller's particularcommunication path may have a high level of distortion when used incombination with other callers on the conference call. To solve thisproblem, the caller may call in again hoping that a differentcommunication path will be used to get a better call quality.

SUMMARY

Systems and methods are provided to solve these and other problems anddisadvantages of the prior art. In order to detect a specific codecsequence being used, a signal that is based on a codec sequence isanalyzed. The signal is analyzed to identify if there is an expectedpattern in the signal. A pattern of a codec sequence can be a uniquepattern of frames, frequencies and/or frequency ranges that aregenerated based on a specific codec sequence. The pattern is compared toone or more previously stored patterns of codec sequences to see ifthere is a match or substantial similarity (e.g., a similarity within anacceptable probabilistic amount). If there is a match, an event isgenerated. For example, if a known codec sequence that has a poor signalquality is identified to be in use for a voice call, the parties may benotified that the call is likely to be a low quality voice call.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a first illustrative system for determininga codec sequence.

FIG. 2 is a block diagram of a second illustrative system fordetermining a codec sequence.

FIG. 3 is a diagram to illustrate how patterns of codec sequences aredetermined.

FIG. 4 is a flow diagram of a process for determining a codec sequence.

FIG. 5 is a flow diagram of a process for matching codec sequences tocustomer ratings of calls.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of a first illustrative system 100 fordetermining a codec sequence. The first illustrative system 100comprises communication devices 101A-101N, a network 110, and acommunication system 120.

The communication device 101 can be or may include be any device thatcan communicate on the network 110, such as a Personal Computer (PC), atelephone, a video system, a cellular telephone, a Personal DigitalAssistant (PDA), a tablet device, a notebook device, a smart phone, avideo server, a conference bridge, an audio server, a video bridge,and/or the like. As shown in FIG. 1, any number of communication devices101A-101N may be connected to the network 110. In addition, thecommunication device 101 may be directly connected to the communicationsystem 120.

The communication device 101 further comprises one or more codecs 102. Acodec 102 is an encoder/decoder for a voice and/or video signal. Forexample, the one or more codecs 102 may support various voice protocols,such as, G.711, G.729, G.729A, G.723.1, G.726, G.728, G.722, variablerate codecs (e.g. Enhanced Variable Rate CODEC (EVRC)), and/or the like.The one or more codecs 102 may support video protocols, such as H.262,H.263, H.264, H.265, and/or the like. Although communication devices101B-101N are not shown with a codec 102, the communication devices101B-101N will also include one or more codecs 102.

The network 110 can be or may include any collection of communicationequipment that can send and receive electronic information, such as theInternet, a Wide Area Network (WAN), a Local Area Network (LAN), a Voiceover IP Network (VoIP), the Public Switched Telephone Network (PSTN), apacket switched network, a circuit switched network, a cellular network,a combination of these, and the like. The network 110 can use a varietyof protocols, such as Ethernet, Internet Protocol (IP), SessionInitiation Protocol (SIP), Integrated Services Digital Network (ISDN),H.323, video protocols, and/or the like.

The communication system 120 can be or may include any collection ofcommunication equipment that can provide communication services for thecommunication devices 101A-101N, such as a communication manager, aPrivate Branch Exchange, a central office switch, a proxy server, agateway, a router, a conference bridge, a video bridge, and/or the like.The communication system 120 further comprises one or more codecs 102, asignal analyzer 121, an event generator 122, a database 123, and astatistics analyzer 125.

The signal analyzer 121 can be or may include any hardware/software thatcan analyze an audio or video signal 121, such as a digital signalprocessor, a digital signal processing software application, and/or thelike. The signal analyzer 121 can analyze an audio or a video signal.The signal analyzer 121 can analyze an analog or digital signal.

The event generator 122 can be any hardware/software that can generatean event based on patterns in a signal, such as, a digital signalprocessor, a software application, and/or the like. The event generator122 can generate various events based on user or system definedconditions.

The database 123 can be any type of database 123, such as a relationaldatabase, a directory service, a file system, a file, and/or the like.The database 123 further comprises one or more patterns of codecsequences 124. A pattern of a codec sequence 124 is a pattern that canbe detected from an audio or video signal based on a particular sequenceof codecs 102 that are used to encode the audio or video signal. Thedatabase 123 can be any form of hardware used to store electronicinformation. In some embodiments, the database 123 may correspond to arelational database. Furthermore, the database 123 does not necessarilyhave to reside within the communication system 120, but can be madeaccessible to the communication system 120 via a network 110.

The statistics analyzer 125 can be any hardware/software that analyzesstatistics, such as, a software application, an application specificprocessor, and/or the like. The statistics analyzer 125 can be used toanalyze a variety of data related statistics produced from the signal,such as to identify trends of different voice and/or video signals.

Although the first illustrative system 100 shows the elements 102 and121-125 as being part of the communication system 120, in otherembodiments, the elements 102 and 121-125 may be located in otherdevices. For example, the elements 121-125 may be located in thecommunication device 101.

Alternatively, the elements 102 and 121-125 may be located in a networkanalyzer within the network 110. In other embodiments, the elements 102and 121-125 may be distributed between the communication system 120 andother elements within the network 110. For example, the database 123 maybe located on a server connected to the network 110.

In still another embodiment, the elements 102 and 121-125 may bedistributed between the communication device 101 and the communicationsystem 120. For example, signal analyzer 121 may be located in thecommunication device 101 and the event generator 122 may be located inthe communication system. Alternatively, portions of the elements121-125 may be distributed between the communication device 101 and thecommunication system 120.

FIG. 2 is a block diagram of a second illustrative system 200 fordetermining a codec sequence. The second illustrative system 200comprises the communication devices 101A-101N and the network 110.

The network 110, in this embodiment, comprises nodes 210A-210N and links211A-211N. The use of the designator N indicates that there may be anynumber of nodes 210 and/or links 211. The nodes 210A-210N areswitching/routing elements in the network 110. One or more of the nodes210A-210N may comprise the communication system 120. The links 211A-211Ncan be any types of communication links that interconnect the nodes210A-210N and/or the communication devices 101A-101N, such as a wirelink, a wireless link, a fiber optic link, a communication network,and/or the like.

The links 211A-211N that interconnect the nodes 210A-210N and each ofthe communication devices 101A-101N show a specific type of codec 102being used for the link 211. The links 211A, 211C-211E each use thecodec 102A. The link 211B uses the codec 102B. The link 211F uses thecodec 102C and the links 211G-211N use the codec 102D. Although thelinks 211A-211N are only shown to support a single codec 102, actualimplementations of a link 211 may support multiple codecs 102.

The network 110, in this embodiment, represents a packet switchednetwork for illustrative purposes. However, in some embodiments, some orall of the nodes 210/links 211 may use circuit switchingtechnologies/codecs 102. In the network 110, a voice or video call maybe established using various routes. Table 1 shows each of the possibleroutes that can be used for voice or video calls made between thecommunication devices 101A-101N.

TABLE 1 CODEC COM. SE- COM. DEVICE QUENCE DEVICE ROUTE QUALITY 101A A101B 210A-210B-210C HIGH A-B-A 210A-210C MEDIUM A-C-D-A 210A-210N-210CLOW 101A A-C-D 101N 210A-210N LOW A-D 210A-210B-210C- MEDIUM 210N 101BA-D 101N 210C-210N MEDIUM A-C-D 210C-210B-210A- LOW 210N

Table 1 is shown based on an audio or video signal originating from thecommunication device 101 on the left hand side of table 1. However, foran interactive voice or video call, an audio and/or video signal willalso be sent in the opposite direction. There are three possible routesfor a call between the communication devices 101A and 101B. The firstroute is between the nodes 210A-210B-210C. This route only uses thecodec 102A. Since only a single type of codec 102A is used, the codecsequence is codec 102A to codec 102A (A). This route has a high qualitybecause it only uses one codec 102A. However, in one embodiment, thesignal may be lower quality because it is encoded/re-encoded using thesame code. Although not shown in Table 1, this type of codec sequencewould be shown as A-A, A-A-A, etc. The second route is between nodes210A and 210C. This route uses two different codecs (the codec 102A andthe codec 102B). Thus, the codec sequence is A-B-A. This route has amedium quality. The third route is between nodes 210A, 210N, and 210C.This route uses three different codecs (the codec 102A, the codec 102C,and the codec 102D). Thus, the codec sequence is A-C-D-A. This route hasa low quality. The routes/codec sequences/quality are also shown for thepossible routes between the communication devices 101A and 101N androutes between the communication devices 101B and 101N in a similarmanner.

The codec sequence for a specific direction of a call may be differentthan the other direction. For example, for a voice call between thecommunication device 101A and the communication device 101B, the codecsequence for the audio signal from the communication device 101A to thecommunication device 101B may be A and the codec sequence for the audiosignal from the communication device 101B to the communication device101A may be A-B-A.

For a video conference call between the communication devices 101A-101N(for a peer to peer conference call or assuming one of the nodes 210 isa video bridge), the video conference call will comprise multiple codecsequences/routes for the various legs of the video conference call. Inaddition, there may be a completely different set of codecs 102/codecsequences for the audio portion of the conference call versus the videoportion of the conference call.

FIG. 3 is a diagram to illustrate how patterns of codec sequences124A-124N are identified. FIG. 3 comprises processes 300A-300N, frames301A-301N, codec 102, codebook 310, patterns of codec sequences124A-124N and analog signals 320A-320N.

The processes 300A-300N represents a process of how frames 301 of acodec 102 are converted used to produce the patterns of codec sequences124A-124N.

The frames 301A-301N are groupings of information that represent one ormore samples of an analog signal that are generated by a sequence ofcodecs. As a first codec 102 (not shown) samples the analog signal, theanalog signal is converted into the digital frames 301A-301N thatrepresent the analog signal. The frames 310A-310N are encoded using thecodebook 310. A codebook 310 is specific to a particular codec 102. Forexample, a codebook 310 for a G.711 codec 102 will be different than acodebook 310 for a G.729 codec 102.

The frames 310A-301N may then be converted to a different codec protocolby a second codec 102/codebook 310. The frames 310A-310N are thenreceived by the receiving codec 102 which uses the necessary codebook310 to decode the frames 301A-301N to reproduce a digital signal thatcan be converted to an analog signal 320 (e.g., a voice or videosignal). The receiving codec 102 uses the same codebook 310 (if thecodec 102 is the same type of codec 102) to lookup a number encoded inthe frame 301 to reproduce the same frequency of the one or moresamples. Thus, the analog signal 320 is regenerated by the receivingcodec 102.

As illustrated by process 300A, frames 301A of a voice signal using thecodec sequence A (as described previously in Table 1) are decoded by thecodec 102. The codec 102 uses the codebook 310 to lookup one or moreattributes for the regenerated audio signal (i.e., A1-AN) associatedwith the number in each of the frames 301A. For example, the G.729 codecuses an 80-bit frame for every 10 milliseconds of audio. 18 of those 80bits encode a linear predictive analysis which when decoded generates apower spectrum shape attribute for the regenerated signal. At this levelof detail there would be N=262144 (2 to the power 18) distinct values ofthe spectrum shape attribute, but:

(i) those 18 bits encode a residual from a moving average of the truespectrum shape, so the set of possible generated spectrum shapes may belarger;

(ii) for the purposes of codec sequence analysis the set of possibledistinct values could be reduced by, for example, using even coarserquantization of the generated spectrum shape parameters.

(iii) Similar comments apply for other receiving codecs 102 based onlinear predictive analysis. Where the receiving codec 102 is one (forexample G.711) which does not incorporate a linear predictive analysis,further analysis (for example, linear predictive analysis) of theregenerated audio signal may be used in order to determine suitableattribute values.

As this process is repeated over time for each frame 301, a patternemerges based on the codec sequence A. The pattern for the codecsequence A shows a 1% occurrence of frames 301 that produce theattribute 1, a 1% occurrence of frames 301 that produce the attribute 2,a 0.2% occurrence the frames 301 that produce the attribute 3, a 3%occurrence of frames 301 that produce the attribute 4, and a 0.02%occurrence of frames 301 that produce the attribute N. The pattern ofthe codec sequence A (124A) can then be matched with a pattern producedby a voice signal to determine if the voice signal uses the codecsequence A. The percentages shown in FIG. 3 are likely lower than whatis shown. However, the larger numbers are used to better illustrate thepoint.

Likewise, the process 300B works in a similar manner for a differentcodec sequence A-B-A. The frames 301 of the voice signal using the codecsequence A-B-A are decoded by the codec 102 using the codebook 310 toproduce the pattern of the codec sequence 124B. Similarly, the process300N generates the pattern of the codec sequence 300N for the codecsequence A-C-D-A. When a voice signal is decoded by the codec 102, thegenerated pattern of the codec sequence 124 can be matched to apreviously generated pattern of the codec sequence 124 to determinewhich codec sequence is being used (or likely being used) for aparticular voice signal.

For example, assume that the database 123 contains the patterns of thecodec sequences 124A-124N. When a voice signal is received, the frames301 of the incoming voice signal are analyzed by the signal analyzer 121to determine a pattern in the voice signal. The pattern is matched(compared) by the event generator 122 to one of the patterns of thecodec sequences 124A-124N. If there is a determined match, an event isgenerated by the event generator 122. For example, the event can be tostore the matched codec sequence in the database 123.

This process can be used to determine codecs 102 with differentfrequency ranges. For example, if a receiving codec 102 has a frequencyrange of 300 Hz to 8,000 kHz and the received frames only have afrequency range of 300 Hz to 3,400 kHz, the process can determine that acodec with a different frequency range was in the codec sequence. Thisis illustrated by process 300N where F4-FN show a 0% pattern in theattributes corresponding to non-zero energy at higher frequency ranges.

The above process can also work for video codec sequences. Similarpatterns can be detected in sequences of video codecs. For a video codec102, patterns of pixels in a digital video frame 301 (e.g., video frames301) can indicate patterns. For example, a video stream encoded using aparticular video codec sequence may have certain pixels with specificcolors verses other codec sequences that do not have the specificcolors, do not have certain pixels, and/or have different percentages ofthe pixels.

In one embodiment, the patterns of the codec sequences 124A-124N aregenerated based on a specific language being spoken in a voice signal.For example, each of the patterns of the codec sequences 124A-124N aregenerated based on the English language. The English patterns of thecodec sequences 124A-124N are then matched to a pattern in an Englishvoice signal.

In another embodiment, the patterns of the codec sequences 124 may befor a specific part of the signal. For example, the patterns of thecodec sequence 124 may be determined based on a determining a commonpattern of background noise for silence periods in the signal. Forexample, if a known codec 102 or manufacturer of a codec uses the samepattern of background noise for silence in an audio signal, the codec102 can be identified as being in the codec sequence.

The above examples can also be based on a variable rate codec 102. Forexample, an enhanced variable rate codec 102 uses an ⅛^(th) bit rate forsilence periods in a voice communication. In addition to detectingsilence periods, variable rate codecs 102 can be detected in the samemanner as regular rate codecs 102 using patterns of codec sequences 124.

In another embodiment, the process can detect the same codecs being usedin a different order. For example, the process can detect a pattern forthe codec sequence A-C-D-A and detect a different pattern for the codecsequence A-D-C-A or A-D-A-C.

FIG. 4 is a flow diagram of a process for determining a codec sequence.Illustratively, the communication devices 101A-101N, the codecs 102, thecommunication system 120, the signal analyzer 121, the event generator122, the database 123, and the statistics analyzer 125 arestored-program-controlled entities, such as a computer or processor,which performs the method of FIGS. 4-5 and the processes describedherein by executing program instructions stored in a tangible computerreadable storage medium, such as a memory or disk. Although the methodsdescribed in FIGS. 4-5 are shown in a specific order, one of skill inthe art would recognize that the steps in FIGS. 4-5 may be implementedin different orders and/or be implemented in a multi-threadedenvironment. Moreover, various steps may be omitted or added based onimplementation.

The process starts in step 400. The signal analyzer 121 receives asignal that is based on a codec sequence in step 402. The signal can bean audio or video signal. The signal can be a digital signal or ananalog signal. For example, the signal can be frames 301 that have beengenerated by an audio or video codec 102 that are received in step 402.Alternatively, the signal can be an analog signal that was generatedfrom a signal encoded by a codec 102.

The signal analyzer 121 identifies a pattern in the signal in step 404.The signal analyzer 121 can identify a pattern in the signal in variousways. As discussed above in FIG. 3, the signal analyzer 121 can identifya pattern in the signal based on a pattern produced by a codebook 310.

The event generator 122 determines if there is a match between thepattern and one of the patterns of the codec sequences 124 in step 406.The event generator 122 can determine if there is a match in variousways. For example, as described in FIG. 3, the event generator 122 candetermine a match based on a codebook 310 pattern.

Alternatively, the event generator 122 can determine if there is a matchbased on a frequency range (a pattern) of an analog signal beingdifferent from the frequency range of the codec 102 in the communicationdevice 101 receiving the signal. For example, assume that the audiofrequency range of the sending codec 102 in the communication device 101is 300 Hz to 8,000 kHz. However, the received analog audio signal onlyhas a range of 300 Hz to 3,400 kHz. If the sending codecs 102 all have afrequency range of 300 Hz to 8,000 kHz, the received signal would alsohave a similar frequency range. Because of the lower frequency range ofthe analog signal, the signal analyzer 121 can determine that a codec102 with a frequency range of 300 Hz to 3,400 kHz was involved as a partof the codec sequence.

In one embodiment, the exact codec 102 can be derived based on a lookuptable that indicates codecs 102 used by devices on the communicationpath. The frequency analyzer 121 can look to see which codec 102 may bein the communication path that has a frequency range of 300 Hz to 3,400kHz. There may be different lookup tables based on a specific serviceprovider providing the call. The signal analyzer 121 may also know thecodec 102 of the sending communication device 101. Thus, the signalanalyzer 121 may be able to determine the codec sequence or a likelycodec sequence.

If there is not a match in step 406, the process goes back to step 404.Otherwise, if there is a match in step 406, the event generator 122 canoptionally save the matched pattern of the codec sequence 124 to thedatabase 123 in step 408.

The event generator 122 generates one or more event(s) in step 410. Theevent(s) that are generated in step 410 can vary based on implementationand/or user preferences. For example, the event can be to alert a callcenter agent of a difficult codec sequence that may cause a poor qualityvoice or video call. This way, the call center agent may try andreestablish the call with a customer.

The event can be to notify a call center agent to switch from aspeakerphone to a handset. Some codecs sequences may provide poor signalquality if the audio signal encoded by the codec 102 is from a speakerphone. By notifying the call center agent, a higher quality call willresult.

In one embodiment, a rating of the call center agent can be adjusted.This way the agent is not penalized for trying to deal with a poorquality call. In another embodiment, the call can be routed to adifferent call center agent who is better at handling poor qualitycalls.

In one embodiment, the process can switch the call to a differentmedium. For example, the process could switch a voice call to an InstantMessaging call. In another embodiment, the process could notify acustomer that the signal may not be a high quality signal based on theparticular codec sequence.

Alternatively, the call could be rerouted to use a different codecsequence. For example, the event generator 122 could send a message to arouter in the communication path to send the call to a different routeror use a different codec 102.

For a conference call, the event generator 122 could switch a leg of theconference call to a different mixer of the conference call. In anotherembodiment, the event generator 122 could notify a service provider of apoor audio signal in the call and/or notify the service provider of avariance to a Quality of Service (QoS) contract.

In one embodiment, if the signal analyzer 121 is located in thecommunication device, additional bandwidth may be used during a call (orintermittently during a call) to transmit results of the patternmatching. The results can be stored in the database 123 or used by acontact center or other entity.

The process determines in step 412 if the signal analyzer 121 wants tocontinue monitoring the signal. If the signal analyzer 121 wants tocontinue monitoring the signal in step 412, the process goes to step404. This way, the process could detect a change of a codec sequence ora variable rate codec in the call. Otherwise, the process ends in step414.

FIG. 5 is a flow diagram of a process for matching codec sequences tocustomer ratings of calls. The process starts in step 500. The processgets, in step 502, the matched patterns of the codec sequences 124 thatwere saved in step 408 of FIG. 4. The number of matched patterns of thecodec sequences 124 can be based on different codec sequences detectedfrom different voice or video calls. For example, the voice or videocalls may be voice or video calls that are made to a call center over atime period.

The process compares statistics from the matched codec sequences tostatistics for customer rating of corresponding voice or video calls todetermine trends in the calls. For example, if the statistics for voicecalls with the codec sequence A receives consistently receives high callratings while the codec sequence A-C-D consistently receives low callrating, the process can determine a trend based on the type of codecs102 being used for calls into a contact center.

The process displays the trends to a user in step 506. The user can thenuse the trend information to better manage the system. For example, amanager of a call center can use the trends to better manage calls andagents in the call center. In one embodiment, the process can generatean event based on a trend in step 506. For example, the process cannotify an administrator of a negative trend. The process ends in step508.

Of course, various changes and modifications to the illustrativeembodiment described above will be apparent to those skilled in the art.These changes and modifications can be made without departing from thespirit and the scope of the system and method and without diminishingits attendant advantages. The following claims specify the scope of theinvention. Those skilled in the art will appreciate that the featuresdescribed above can be combined in various ways to form multiplevariations of the invention. As a result, the invention is not limitedto the specific embodiments described above, but only by the followingclaims and their equivalents.

1. A method comprising: receiving, by a processor, a signal that isbased on a codec sequence; identifying, by the processor, a pattern inthe signal, wherein the pattern in the signal is based on a plurality ofpercentages of occurrences of specific frames in the signal;determining, by the processor, that there is a match between the patternin the signal and an expected pattern of a codec sequence; and inresponse to determining that there is a match between the pattern in thesignal and the expected pattern of the codec sequence, generating, bythe processor, an event.
 2. The method of claim 1, wherein the signal isa digital voice signal or an analog voice signal.
 3. The method of claim1, wherein the signal a digital video signal or an analog video signal.4. The method of claim 3, wherein the signal is the digital video signaland wherein the pattern of the codec sequence is based on a pixelpattern in the digital video signal.
 5. The method of claim 1, whereinthe event is one of: alerting a call center agent of a difficult codecsequence; notifying the call center agent to switch from speakerphone toa handset; adjusting a rating of the call center agent; routing theaudio signal to a different call center agent; switching a call for thesignal to a different medium; notifying a customer that the signal maynot be a high quality signal; re-routing the call for the signal;switching to a different codec in the codec sequence for the signal;switching a leg of a conference call to a different mixer of theconference call; sending a message to a communication system to switchto a different codec for the call for the signal; notifying a serviceprovider of a poor audio signal in the call for the signal; or notifyinga service provider of a variance to a Quality of Service (QoS) contract.6. The method of claim 1, wherein the signal comprises a plurality ofcombined voice calls, wherein the plurality of voice calls use aplurality of different codec sequences, wherein the event is to savestatistics based on the plurality of different codec sequences, andfurther comprising: comparing, by the processor, the statistics basedthe plurality of different codec sequences to statistics for customerratings of the plurality of voice calls to identify trends in theplurality of voice calls.
 7. The method of claim 1, wherein the patternof the codec sequence comprises a plurality of patterns of codecsequences.
 8. The method of claim 7, wherein at least one of theplurality of codec sequences comprises a codec sequence that comprisesat least two or more different codecs.
 9. The method of claim 1, whereinthe pattern of the codec sequence is based on a frequency range of acodec.
 10. The method of claim 1, wherein the pattern of the codecsequence is based on a pattern of a codebook of a codec.
 11. The methodof claim 1, wherein the signal is an audio signal and wherein thepattern of the codec sequence is based on a language spoken in the audiosignal.
 12. The method of claim 1, wherein the signal is an audio signaland wherein the pattern of the codec sequence is determined based on adetermining a common pattern of background noise for silence periods inthe signal.
 13. A system comprising: a signal analyzer that receives asignal that is based on a codec sequence and identifies a pattern in thesignal, wherein the pattern in the signal is based on a plurality ofpercentages of occurrences of specific frames in the signal; and anevent generator that determines that there is a match between thepattern in the signal and an expected pattern of a codec sequence and inresponse to determining that there is a match between the pattern in thesignal and the pattern of the codec sequence, generates an event. 14.The system of claim 13, wherein the signal is a digital video signal andwherein the pattern of the codec sequence is based on a pixel pattern inthe digital video signal.
 15. The system of claim 13, wherein the eventis one of: alerting a call center agent of a difficult codec sequence;notifying the call center agent to switch from speakerphone to ahandset; adjusting a rating of the call center agent; routing the audiosignal to a different call center agent; switching a call for the signalto a different medium; notifying a customer that the signal may not be ahigh quality signal; re-routing the call for the signal; switching to adifferent codec in the codec sequence for the signal; switching a leg ofa conference call to a different mixer of the conference call; sending amessage to a communication system to switch to a different codec for thecall for the signal; notifying a service provider of a poor audio signalin the call for the signal; or notifying a service provider of avariance to a Quality of Service (QoS) contract.
 16. The system of claim13, wherein the signal comprises a plurality of voice calls, wherein theplurality of voice calls use a plurality of different codec sequences,wherein the event is to save statistics based on the plurality ofdifferent codec sequences, and further comprising a statistics analyzerthat compares the statistics based the plurality of different codecsequences to statistics for customer ratings of the plurality of voicecalls to identify trends in the plurality of voice calls.
 17. The systemof claim 13, wherein the pattern of the codec sequence comprises aplurality of patterns of codec sequences and wherein at least one of theplurality of codec sequences comprises a codec sequence that comprisesat least two or more different codecs.
 18. The system of claim 13,wherein the pattern of the codec sequence is based on a frequency rangeof a codec.
 19. The system of claim 13, wherein the pattern of the codecsequence is based on a pattern of a codebook of a codec.
 20. A computerreadable medium that is not a signal having stored thereon instructionsthat, when executed, cause a processor to perform a method, theinstructions comprising: instructions to receive a signal that is basedon a codec sequence; instructions to identify a pattern in the signal,wherein the pattern in the signal is based on a plurality of percentagesof occurrences of specific frames in the signal; instructions todetermine if there is a match between the pattern in the signal and anexpected pattern of a codec sequence; and in response to determiningthat there is a match between the pattern in the signal and the patternof the codec sequence, instructions to generate an event.